# coding: utf-8

# In[5]:

df = 3

# In[4]:

from datetime import datetime, date, timedelta

# In[6]:

import numpy as np

# In[7]:

import pandas as pd

# In[9]:

dates = pd.date_range('2017-01-01', periods=7)

# In[16]:

arrs = []
for i in range(1, 8):
    arr = list(range(i * 10, i * 10 + 4))
    arrs.append(arr)
arrs

# In[12]:

np.random.randn(6, 4)

# In[17]:

df = pd.DataFrame(arrs, index=dates, columns=list("ABCD"))

# In[18]:

df

# In[19]:

df.T

# In[20]:

df

# In[21]:

df2 = df.copy()

# In[22]:

df2

# In[23]:

df2[df2 > 0] = -df2

# In[26]:

df2[df2 < 0] = -df2

# In[27]:

df2

# In[28]:

dates

# In[29]:

dates[0:4]

# In[30]:

df

# In[31]:

4 / 15

# In[32]:

df1 = df.reindex(index=dates[0:4], columns=list(df.columns) + ['E'])

# In[34]:

df1.loc[dates[0]:dates[1], 'E'] = 3

# In[35]:

df1

# In[36]:

df1

# In[47]:

df1.loc[dates[0]:dates[2], "D"]

# In[48]:

df1

# In[49]:

df1.dropna()

# In[50]:

df

# In[51]:

df["E"] = None

# In[52]:

df

# In[53]:

df.fillna(0)

# In[54]:

df.mean()

# In[55]:

df.mean(1)

# In[56]:

pd.isnull(df)

# In[58]:

s = pd.Series([1, 3, 5, np.nan, 6, 8, 9], index=dates).shift(2)

# In[59]:

s

# In[60]:

s = pd.Series([1, 3, 5, np.nan, 6, 8, 9], index=dates)

# In[61]:

s

# In[63]:

s.shift(2)

# In[65]:

c = s.shift(2)

# In[66]:

c

# In[67]:

c.shift(2)

# In[68]:

s

# In[69]:

c

# In[70]:

df.sub(s, axis='index')

# In[71]:

dates = pd.date_range("2017-01-01", periods=6)

# In[72]:

df = pd.DataFrame(np.random.randn(6, 5), index=dates, columns=list("ABCDE"))

# In[73]:

df

# In[74]:

df[dates[0]:dates[1]] = np.nan

# In[75]:

df

# In[76]:

df[dates[5]] = np.nan

# In[78]:

df = df.drop(dates[5])

# In[79]:

df

# In[80]:

df = pd.DataFrame(np.random.randn(6, 5), index=dates, columns=list("ABCDE"))

# In[81]:

df

# In[83]:

df[dates[0]:dates[1]] = np.nan

# In[84]:

df

# In[85]:

df[dates[5]:dates[5]] = np.nan

# In[86]:

df

# In[87]:

s = pd.Series([1, 3, 5, np.nan, 6, 8], index=dates).shift(2)

# In[88]:

s

# In[89]:

df.sub(s, axis='index')

# In[90]:

df = pd.DataFrame(np.random.randn(6, 5), index=dates, columns=list("ABCDE"))

# In[91]:

df

# In[92]:

s

# In[93]:

df.sub(s, axis='index')

# In[94]:

df.apply(np.cumsum)

# In[95]:

df

# In[96]:

df.sub(s, axis='index')

# In[97]:

df

# In[98]:

df.apply(np.cumsum)

# In[99]:

df

# In[100]:

df

# In[101]:

df.apply(np.cumsum)

# In[102]:

nullpd = pd.DataFrame([])

# In[104]:

nullpd['a'] = np.nan

# In[105]:

nullpd

# In[106]:

df

# In[107]:

df.apply(lambda x: x.max() - x.min())

# In[108]:

df.apply(lambda x: x.max() + x.min())

# In[112]:

s = pd.Series(np.random.randint(0, 7, size=6))

# In[113]:

s

# In[114]:

s.value_counts()

# In[115]:

s = pd.Series(['A', 'B', 'C', 'Aaba', 'Baca', np.nan, 'CABA', 'dog', 'cat'])

# In[116]:

s

# In[117]:

s.str.lower()

# In[118]:

s.str.upper()

# In[119]:

table = pd.DataFrame(np.random.randn(10, 4), index=pd.date_range("2007", periods=10),
                     columns=['Chinese', 'Math', 'English', 'Chemistry'])

# In[120]:

table

# In[121]:

pieces = [df[:3], df[3:7], df[7:]]

# In[122]:

pieces

# In[123]:

df = pd.DataFrame(np.random.randn(10, 4))

# In[124]:

df

# In[125]:

pieces = [df[:3], df[3:7], df[7:]]

# In[126]:

pd.concat(pieces)

# In[127]:

pieces

# In[128]:

print(pieces)

# In[129]:

left = pd.DataFrame({'key': ['foo', 'foo'], 'lval': [1, 2]})

# In[130]:

left

# In[131]:

right = pd.DataFrame({'key': ['foo', 'foo'], 'rval': [4, 5]})

# In[132]:

right

# In[134]:

pd.merge(left, right, on='key')

# In[135]:

left = pd.DataFrame({'key': ['foo', 'bar'], 'lval': [1, 2]})

# In[136]:

left

# In[137]:

right = pd.DataFrame({'key': ['foo', 'bar'], 'rval': [4, 5]})
right

# In[138]:

pd.merge(left, right, on='key')

# In[140]:

np.random.randint(9, 100)

# In[141]:

df = pd.DataFrame(np.random.randn(8, 4), columns=['A', 'B', 'C', 'D'])

# In[142]:

df

# In[143]:

df[df < 0] = -df

# In[144]:

df

# In[149]:

df[df < 30] = int(df[df < 30])

# In[148]:

df

# In[150]:

df[df > 0] = 0

# In[151]:

df

# In[152]:

df = pd.DataFrame(np.random.randn(8, 4), columns=['A', 'B', 'C', 'D'])

# In[153]:

df

# In[154]:

df[df < 0] = 0

# In[155]:

df

# In[156]:

df[df < 1] = 10

# In[157]:

df

# In[162]:

a = 3

# In[160]:

df

# In[163]:

df

# In[164]:

s = df.iloc[3]

# In[165]:

s

# In[170]:

df.loc[7]

# In[171]:

s

# In[174]:

s = s.astype(int)

# In[175]:

s

# In[176]:

type(s)

# In[180]:

help(pd.Series)

# In[181]:

df

# In[185]:

c = df[1:3]

# In[186]:

c

# In[188]:

df.append(c, ignore_index=True)

# In[190]:

df[1:2] = 3

# In[192]:

df[2:3] = 4

# In[194]:

df[3:4] = 5

# In[195]:

df

# In[196]:

df[3:4].astype(int)

# In[197]:

df

# In[198]:

df[3:4] = df[3:4].astype(int)

# In[200]:

df.astype(int)

# In[201]:

df

# In[202]:

df = df.astype(int)

# In[203]:

df


# In[ ]:
